#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：Employment_class 
@File    ：15_异步.py
@IDE     ：PyCharm 
@Author  ：XiaoDengYa
@Date    ：2021/6/10/010 18:51 
"""

from multiprocessing import Pool
import time
import os

def dtest():
    print("---进程池中的进程---pid=%d,ppid=%d--"%(os.getpid(),os.getppid()))
    for i in range(3):
        print("----%d---"%i)
        time.sleep(1)
    return "hahah"

def dtest2(args):
    print("---callback func--pid=%d"%os.getpid())
    print("---callback func--args=%s"%args)

if __name__ == '__main__':
    pool = Pool(3)
    pool.apply_async(func=dtest,callback=dtest2) # dtest执行结束后返回了hah，主进程在执行一件事，突然发现子进程已经结束了，因为穿了
    # callback 回调了haha传给dtest2 之后开始执行dtest2 dtest2执行完之后主进程继续执行他的事情
    #异步的理解：主进程正在做某件事情，突然　来了一件更需要立刻去做的事情，
    #那么这种，在父进程去做某件事情的时候　并不知道是什么时候去做，的模式　就称为异步
    # 异步：不用等待事情的发生，而是你发生的时候我才去做这件事，其他时间我可以做其他事情
    while True:
        time.sleep(1)
        print("----主进程-pid=%d----"%os.getpid())
